<?php

require_once ('DonDatHangDTO.php');
require_once ('ConnectDB.php');

/** 
 * @author Anh Vu
 * 
 * 
 */
class DonDatHangDAO extends ConnectDB {
	//TODO - Insert your code here
	function DonDatHangDAO(){
		
	}
	
	/**
	 * Thêm đơn đặt hàng
	 * Edit Thu Hà 20/6/2011
	 */
	public static function ThemDonDatHang($donDatHang)
	{
		$result = true;
		try {
			
			if (!ConnectDB::OpenConnection())
			{
				$result = false;
				return $result;
			}			
			
			$strSql = "INSERT INTO `don_dat_hang` 
					(`MaDDH`, `MaGianHang`,`MaNguoiDung`, `TrangThai`, `GhiChu`, `NgayDat`, `NgayHuy`) 
					VALUES ($donDatHang->MaDDH,						
						$donDatHang->MaGianHang,
						$donDatHang->MaNguoiDung,
						$donDatHang->TrangThai,
						'$donDatHang->GhiChu',
						 now(),
						'');";
			
			$result = mysql_query($strSql, ConnectDB::$mLink);
			
			ConnectDB::CloseConnection();
			
		} catch (Exception $e) {
			$result = FALSE;
		}
		return $result;
	}
	
	/**
	 * Cập Nhật Trạng Thái
	 * Edit by Thu Hà 20/6/2011
	 * $trangThai: 1-chờ xử lý, 2-đã liên hệ, 3-đã hoàn tất, 4-hủy
	 * edit by Anh Vu 25/6
	 */
	public static function CapNhatTrangThaiDDH($maDDH, $trangThai)
	{
		$result = true;
		try {
			
			if (!ConnectDB::OpenConnection())
			{
				return false;
			}
			
			$strSql = "UPDATE `don_dat_hang` 
					 	SET `TrangThai` = $trangThai";
			if ($trangThai == 4)
				$strSql .= ", `NgayHuy`= now()  WHERE `MaDDH`=  $maDDH;";
			else
				$strSql .=" WHERE `MaDDH`=  $maDDH;";
			
			$result = mysql_query($strSql, ConnectDB::$mLink);
			
			ConnectDB::CloseConnection();
			
		} 
		catch (Exception $e) {
			$result = FALSE;
		}
		return $result;
	}
	
	/**
	 * Lấy DDH theo mã DDH
	 * Thu Hà 20/6/2011
	 */
	public static function LayDDHTheoMaDDH($maDDH)
	{
		$donDatHangDto = new DonDatHangDTO();
		try {
			
			if (!ConnectDB::OpenConnection())
			{
				return false;
			}
			
			$strSql = "SELECT * FROM `don_dat_hang` 
					   WHERE `MaDDH` = $maDDH;";
												
			$result = mysql_query($strSql, ConnectDB::$mLink);
			
			if (!$result || mysql_num_rows($result) != 1)
				return null;
			$row = mysql_fetch_array($result);			
				
			$donDatHangDto->MaDDH = $row["MaDDH"];				
			$donDatHangDto->MaGianHang = $row["MaGianHang"];
			$donDatHangDto->MaNguoiDung = $row["MaNguoiDung"];
			$donDatHangDto->TrangThai = $row["TrangThai"];
			$donDatHangDto->GhiChu = $row["GhiChu"];
			$donDatHangDto->NgayDat = $row["NgayDat"];
			$donDatHangDto->NgayHuy = $row["NgayHuy"];
			switch($donDatHangDto->TrangThai)
			{
				case 1:
					$donDatHangDto->TenTrangThai = "Chờ xử lý";
					break;
				case 2:
					$donDatHangDto->TenTrangThai = "Đã liên hệ";
					break;
				case 3:
					$donDatHangDto->TenTrangThai = "Hoàn tất";
					break;
				case 4:
					$donDatHangDto->TenTrangThai = "Hủy";
					break;
			}
			
			ConnectDB::CloseConnection();
			
		} 
		catch (Exception $e) {
			$donDatHangDto = null;
		}
		return $donDatHangDto;
	}
	/**
	 * Lấy ds DDH của một tài khoản nào đó.
	 * Thu Hà 20/6/2011
	 * edit 24/6/2011
	 */
	public static function LayDSDDHTheoMaNguoiDung($maNguoiDung)
	{
		$dsDDH = array();
		try {
			
			if (!ConnectDB::OpenConnection())
			{
				return false;
			}
			
			$strSql = "SELECT * FROM `don_dat_hang` 
					   WHERE `MaNguoiDung` = $maNguoiDung;";
												
			$result = mysql_query($strSql, ConnectDB::$mLink);
			if (!$result || mysql_num_rows($result) <= 0)
				return null;
			while($row = mysql_fetch_array($result))
			{
				$donDatHangDto = new DonDatHangDTO();
				$donDatHangDto->MaDDH = $row["MaDDH"];				
				$donDatHangDto->MaGianHang = $row["MaGianHang"];
				$donDatHangDto->MaNguoiDung = $row["MaNguoiDung"];
				$donDatHangDto->TrangThai = $row["TrangThai"];
				$donDatHangDto->GhiChu = $row["GhiChu"];
				$donDatHangDto->NgayDat = $row["NgayDat"];
				$donDatHangDto->NgayHuy = $row["NgayHuy"];
				switch($donDatHangDto->TrangThai)
				{
					case 1:
						$donDatHangDto->TenTrangThai = "Chờ xử lý";
						break;
					case 2:
						$donDatHangDto->TenTrangThai = "Đã liên hệ";
						break;
					case 3:
						$donDatHangDto->TenTrangThai = "Hoàn tất";
						break;
					case 4:
						$donDatHangDto->TenTrangThai = "Hủy";
						break;
				}
				
				array_push($dsDDH, $donDatHangDto);
			}
			
			ConnectDB::CloseConnection();
			
		} 
		catch (Exception $e) {
			$dsDDH = null;
		}
		return $dsDDH;
	}	
	/**
	 * Lấy ds DDH theo mã người dùng ngay mua và trạng thái
	 * tùy chọn  $trangThai: 1-chờ xử lý, 2-đã liên hệ, 3-đã hoàn tất, 4-hủy, 0- lấy tất cả
	 * Thu Hà 20/6/2011
	 */
	public static function LayDSDDHTheoMaNguoiDung_Ngay_TrangThai($maND, $ngayBD, $ngayKT, $trangThai)
	{
		$dsDDH = array();
		try {
			
			if (!ConnectDB::OpenConnection())
			{
				return false;
			}			
			
			$strSql = "SELECT * FROM `don_dat_hang` 
					   WHERE `MaNguoiDung`= $maND ";
			if (strlen($ngayBD) > 0)
			{
				$time = strtotime($ngayBD);
				$ngayBD = date('Y-m-d', $time );
			
				$strSql .= " AND `NgayDat` >= '$ngayBD' ";
			}
			if (strlen($ngayKT) > 0)
			{
				$time = strtotime($ngayKT);
				$ngayKT = date('Y-m-d', $time );
				
				$strSql .= " AND `NgayDat` <= '$ngayKT' ";
			}
			
			if ($trangThai == 0)
			{
				$strSql .= ";";
			}
			else
			{
				$strSql .= " AND TrangThai = $trangThai;";
			}
									
			$result = mysql_query($strSql, ConnectDB::$mLink);
			if (!$result || mysql_num_rows($result) <= 0 )
				return null;
			while($row = mysql_fetch_array($result))
			{
				$donDatHangDto = new DonDatHangDTO();
				$donDatHangDto->MaDDH = $row["MaDDH"];
				$donDatHangDto->MaGianHang = $row["MaGianHang"];
				$donDatHangDto->MaNguoiDung = $row["MaNguoiDung"];
				$donDatHangDto->TrangThai = $row["TrangThai"];
				$donDatHangDto->GhiChu = $row["GhiChu"];
				$donDatHangDto->NgayDat = $row["NgayDat"];
				$donDatHangDto->NgayHuy = $row["NgayHuy"];
				switch($donDatHangDto->TrangThai)
				{
					case 1:
						$donDatHangDto->TenTrangThai = "Chờ xử lý";
						break;
					case 2:
						$donDatHangDto->TenTrangThai = "Đã liên hệ";
						break;
					case 3:
						$donDatHangDto->TenTrangThai = "Hoàn tất";
						break;
					case 4:
						$donDatHangDto->TenTrangThai = "Hủy";
						break;
				}
				
				array_push($dsDDH, $donDatHangDto);
			}
			
			ConnectDB::CloseConnection();
			
		} catch (Exception $e) {
			$dsDDH = null;
		}
		return $dsDDH;
	}	
	
	/**
	 * Lấy ds DDH của một gian hàng, sắp theo thứ tự thời gian giảm dần
	 * tùy chọn  $trangThai: 1-chờ xử lý, 2-đã liên hệ, 3-đã hoàn tất, 4-hủy, 0 - lấy tất cả
	 * 
	 * Edit by Anh Vu 24/6
	 */
	public static function LayDSDDHTheoMaGianHang_TrangThai($maGianHang, $trangThai)
	{
		$lstDDH = array();
		try {
			if (!ConnectDB::OpenConnection())
			return FALSE;
			
			$strSql = "SELECT * FROM `don_dat_hang` 
					   WHERE `MaGianHang`= $maGianHang";
			if ($trangThai == 0)
			{
				$strSql = $strSql.";"; //thiếu phép nối
			}
			else
			{
				$strSql .= " AND TrangThai = $trangThai;";
			}
			//echo $strSql;							
			$result = mysql_query($strSql, ConnectDB::$mLink);
			if ($result == false)
			{				
				return null;
			}
			while($row = mysql_fetch_array($result))
			{
				$donDatHangDto = new DonDatHangDTO();
				$donDatHangDto->MaDDH = $row["MaDDH"];
				$donDatHangDto->MaGianHang = $row["MaGianHang"];
				$donDatHangDto->MaNguoiDung = $row["MaNguoiDung"];
				$donDatHangDto->TrangThai = $row["TrangThai"];
				$donDatHangDto->GhiChu = $row["GhiChu"];
				$donDatHangDto->NgayDat = $row["NgayDat"];
				$donDatHangDto->NgayHuy = $row["NgayHuy"];
				
				array_push($lstDDH, $donDatHangDto);
			}
			
			ConnectDB::CloseConnection();
			
		} catch (Exception $e) {
			$lstDDH = array();
		}
		return $lstDDH;
	}
}

?>